/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package comunicacion;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;

/**
 *
 * @author JuanP
 */
public class Conexion extends Thread{
    
    private Socket s;
    private DataInputStream dis;
    private DataOutputStream dos;
    private String nEstacion;

    public String getnEstacion() {
        return nEstacion;
    }

    public Conexion(String nombre,Socket s) {
        try{
            this.s=s;
            dis=new DataInputStream(s.getInputStream());
            dos=new DataOutputStream(s.getOutputStream());
            nEstacion=nombre;
            start();
        }catch(Exception e){
        }
    }
    
    public void run(){
        while (true){
            try{
                int nCodigo=dis.readInt();
                String sTrama=dis.readUTF();
                if(nEstacion!=null)System.out.println("Recibido de "+nEstacion+": "+sTrama);
                switch(nCodigo){
                    case 1:
                        nEstacion=sTrama;
                        //A todas las estaciones les envio la nueva estacion
                        GestorConexiones.getInstance().enviarTrama(nCodigo, sTrama);
                        break;
                    case 2:
                        String[] mensaje = sTrama.split(",");
                        //mensaje[0]= control  mensaje[1]= origen  mensaje[2]= destino
                        GestorConexiones.getInstance().enviarMensajeEstacion(nCodigo, mensaje[0]+","+mensaje[1], mensaje[2]);
                        break;
                    case 3:
                        GestorConexiones.getInstance().desconecta(this);
                        break;
                    case 4:
                        GestorConexiones.getInstance().enviarTrama(4, sTrama);
                        break;
                }
                
            }catch(Exception e){
            }
            
        }
    }
    
    public void enviarMensaje(int nCodigo, String sTrama){
        System.out.println("Enviando a "+nEstacion+":"+sTrama);
        try{
           dos.writeInt(nCodigo);
           dos.writeUTF(sTrama);
        }catch(Exception e){
        }
    }
    

    
    
}
